package chipwits.operator;

import chipwits.dnd.TransferableData;
import java.awt.datatransfer.Transferable;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DragGestureEvent;
import java.awt.dnd.DragSource;
import java.awt.dnd.DragSourceDropEvent;
import javax.swing.ImageIcon;

/**
 *
 * @author Emmanuel
 */
public class Op_base extends Operator {

    //*************************   Constructeurs   *************************

    public Op_base(OpType.Type type) {  //constructeur. Si type ==opdebase, x et y inutiles.
        super();
        this.type=new OpType(type);
        this.setIcon(new ImageIcon(this.type.getImage()));
        dragSource.createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_COPY, this);
    }



    
    @Override
    public void dragDropEnd(DragSourceDropEvent evt) {
        return;
    }

    @Override
    public void dragGestureRecognized(DragGestureEvent evt) {
        if (this.type.getType() != OpType.Type.POUBELLE/* && this.type != OpType.VIDE*/) {     //si c'est autre chose qu'un vide ou une poubelle, on démarre le drag&drop
            //TransferableData(Operator_tmp.OpType type, boolean opDeBase, ImageIcon icone, Arrow[] arrows)
            Transferable t = new TransferableData(type, /*opDeBase,*/ (ImageIcon) this.getIcon(), null);
            dragSource.startDrag(evt, DragSource.DefaultCopyNoDrop, t, this);   //start avec curseur NoDrop
        }
    }
}
